home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc™ Source Code / Layout / FrFaItr.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-28  |  3.2 KB  |  130 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        FrFaItr.cpp
  3.  
  4.     Contains:    Implementation of class ODFrameFacetIterator
  5.  
  6.     Owned by:    Joshua Susser
  7.  
  8.     Copyright:    © 1993 - 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <6>      8/7/95    JBS        1260631added ASSERT for frame in Init
  13.          <5>      8/3/95    RR        #1257260: Collapse B classes. Remove
  14.                                     somInit methods. Don't call IsInitialized
  15.                                     or SubclassResponsibility
  16.          <4>     5/26/95    RR        #1251403: Multithreading naming support
  17.          <3>      5/2/95    JBS        1244569 Layout iterators need SOM exception
  18.                                     handling; 1243361 FrameFacetIterator should
  19.                                     throw kODErrIteratorNotInitialized
  20.          <2>     4/27/95    JBS        1209506 $5 comments eliminated
  21.          <1>     6/29/94    JBS        first checked in
  22.          <0>     6/28/94    SV        SOMverted
  23. */
  24.  
  25. #define ODFrameFacetIterator_Class_Source
  26.  
  27. #ifndef SOM_ODFrameFacetIterator_xih
  28. #define VARIABLE_MACROS
  29. #include <FrFaItr.xih>
  30. #endif
  31.  
  32. #ifndef _EXCEPT_
  33. #include <Except.h>
  34. #endif
  35.  
  36. #ifndef _ODMEMORY_
  37. #include <ODMemory.h>
  38. #endif
  39.  
  40. #ifndef _ODTYPES_
  41. #include <ODTypes.h>
  42. #endif
  43.  
  44. #ifndef _ORDCOLL_
  45. #include <OrdColl.h>
  46. #endif
  47.  
  48. #ifndef SOM_ODFrame_xh
  49. #include <Frame.xh>
  50. #endif
  51.  
  52. #pragma segment ODFrFaItr
  53.  
  54. SOM_Scope void  SOMLINK ODFrameFacetIteratorsomUninit(ODFrameFacetIterator *somSelf)
  55. {
  56.     ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
  57.     ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","somUninit");
  58.  
  59.     delete _fIter;
  60.     
  61.     ODFrameFacetIterator_parents_somUninit(somSelf);
  62.  
  63. }
  64.  
  65. SOM_Scope void  SOMLINK ODFrameFacetIteratorInitFrameFacetIterator(ODFrameFacetIterator *somSelf, Environment *ev,
  66.         ODFrame* frame)
  67. {
  68.     ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
  69.     ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","InitFrameFacetIterator");
  70.  
  71.     SOM_TRY
  72.         ASSERT(frame, kODErrIllegalNullFrameInput);
  73.  
  74.         /* Moved from somInit. SOM itself sets fields to zero
  75.         _fFrame = kODNULL;
  76.         _fIter = kODNULL;
  77.         */
  78.         somSelf->InitObject(ev);
  79.     
  80.         _fFrame = frame;
  81.     SOM_CATCH_ALL
  82.     SOM_ENDTRY
  83. }
  84.  
  85. SOM_Scope ODFacet*  SOMLINK ODFrameFacetIteratorFirst(ODFrameFacetIterator *somSelf, Environment *ev)
  86. {
  87.     ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
  88.     ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","First");
  89.  
  90.     SOM_TRY
  91.         if ( !_fIter )
  92.             _fIter = new OrderedCollectionIterator(_fFrame->GetFacets(ev));
  93.         THROW_IF_NULL(_fIter);
  94.     
  95.         return (ODFacet*) _fIter->First();
  96.     SOM_CATCH_ALL
  97.     SOM_ENDTRY
  98.     return kODNULL;
  99. }
  100.  
  101. SOM_Scope ODFacet*  SOMLINK ODFrameFacetIteratorNext(ODFrameFacetIterator *somSelf, Environment *ev)
  102. {
  103.     ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
  104.     ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","Next");
  105.  
  106.     SOM_TRY
  107.         if ( !_fIter )
  108.             THROW(kODErrIteratorNotInitialized);
  109.     
  110.         return (ODFacet*) _fIter->Next();
  111.     SOM_CATCH_ALL
  112.     SOM_ENDTRY
  113.     return kODNULL;
  114. }
  115.  
  116. SOM_Scope ODBoolean  SOMLINK ODFrameFacetIteratorIsNotComplete(ODFrameFacetIterator *somSelf, Environment *ev)
  117. {
  118.     ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
  119.     ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","IsNotComplete");
  120.  
  121.     SOM_TRY
  122.         if ( !_fIter )
  123.             THROW(kODErrIteratorNotInitialized);
  124.     
  125.         return _fIter->IsNotComplete();
  126.     SOM_CATCH_ALL
  127.     SOM_ENDTRY
  128.     return kODNULL;
  129. }
  130.